package org.huawei260.TiKu.B;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Scanner;

/**
 * @Auther: qingle
 * @Date: 2024/10/27-21:49
 * @Description:
 *
 * 题目描述
 * 一群大雁往南飞，给定一个字符串记录地面上的游客听到的大雁叫声，请给出叫声最少由几只大雁发出。
 *
 *
 *
 * 具体的：
 *
 * 1. 大雁发出的完整叫声为 "quack"，因为有多只大雁同一时间嘎嘎作响，所以字符串中可能会混合多个"quack"。
 *
 * 2. 大雁会依次完整发出"quack"，即字符串中 "q" ,"u", "a", "c", "k" 这 5 个字母按顺序完整存在才能计数为一只大雁。如果不完整或者没有按顺序则不予计数。
 *
 * 3. 如果字符串不是由"q" ,"u", "a", "c", "k"字符组合而成，或者没有找到一只大雁，请返回-1。
 *
 * 输入格式
 * 一个字符串，包含大雁 quack 的叫声。1 <= 字符串长度 <= 1000，字符串中的字符只有 "q" ,"u", "a", "c", "k"。
 * 输出格式
 * 大雁的数量
 * 输入样例    复制
 * quackquack
 * 输出样例    复制
 * 1
 * @version: 1.0
 */
public class B_2510_数大雁 {
//	public class GeeseQuackCounter {
//		public static void main(String[] args) {
//			System.out.println(minGeese("quackquack")); // 输出 1
//			System.out.println(minGeese("qaauucqckk")); // 输出 -1
//			System.out.println(minGeese("quacqkuac")); // 输出 1
//			System.out.println(minGeese("qququaauqccauqkkcauqqkcauuqkcaaukccakkck")); // 输出 5
//		}
//
//
//	public class Main {
		public static void main(String[] args) {
			Scanner sc = new Scanner(System.in);
			String quack = sc.next();
			System.out.println(minGeese(quack));
		}

		public static int minGeese(String quack) {
			LinkedList<Integer> q = new LinkedList<>();

			int u = 0, a = 0, c = 0;

			ArrayList<Integer[]> ranges = new ArrayList<>();

			for (int i = 0; i < quack.length(); i++) {
				switch (quack.charAt(i)) {
					case 'q':
						q.add(i);
						break;
					case 'u':
						if (u + 1 <= q.size()) u++;
						break;
					case 'a':
						if (a + 1 <= u) a++;
						break;
					case 'c':
						if (c + 1 <= a) c++;
						break;
					case 'k':
						if (c >= 1) {
							ranges.add(new Integer[] {q.removeFirst(), i});
							u--;
							a--;
							c--;
						}
						break;
					default:
						return -1;
				}
			}

			if (ranges.size() == 0) return -1;

			int ans = 1;
			for (int i = 0; i < ranges.size(); i++) {
				int count = 1;
				for (int j = i + 1; j < ranges.size(); j++) {
					if (ranges.get(i)[1] >= ranges.get(j)[0]) {
						count++;
					}
				}
				ans = Math.max(ans, count);
			}

			return ans;
		}
	}